package com.breeze.components.message.delay.msg;

import com.alibaba.fastjson2.JSON;
import java.io.Serializable;
import lombok.Data;

/**
 * 延迟队列消息体父类
 *
 * @author breeze
 */
@Data
public abstract class DelayMessage implements Serializable {

  /** 任务执行错误次数 */
  private int errorTimes = 0;

  public static DelayMessage parseFormJson(String json) {
    return JSON.parseObject(json, DelayMessage.class);
  }

  /**
   * 任务唯一标识
   *
   * @return 任务唯一标识
   */
  public abstract String taskIdentity();

  public String toJsonStr() {
    return JSON.toJSONString(this);
  }
}
